import request from '@/config/axios'

// 店铺信息 VO
export interface ShopInfoVO {
  id: number | string // 唯一编号
  type: number // 类型
  categoryId: number // 主营类目编号
  categoryCode: string // 主营类目编码
  categoryName: string // 主营类目名称
  name: string // 名称
  logo: string // 徽标
  selfOperated: number // 是否平台自营
  recommend: number // 推荐类型
  scoreLevel: number // 评分星级
  introduction: string // 简介
  notice: string // 公告
  contactName: string // 联系人姓名
  contactMobile: string // 联系人电话
  ownerEidNo: string // 身份证号码
  ownerEidFrontUrl: string // 身份证正面图片地址
  ownerEidBackUrl: string // 身份证反面图片地址
  businessLicenseNo: string // 营业执照号码
  businessLicenseUrl: string // 营业执照图片地址
  businessHours: string // 营业时间
  status: number // 状态
  provinceCode: string // 省份编码
  cityCode: string // 城市编码
  countyCode: string // 区县编码
  provinceCityCounty: string // 省市区县
  detailAddress: string // 详细地址
  latitude: number // 纬度
  longitude: number // 经度
  auditStatus: number // 审核状态
  auditNote: string // 审核说明
  auditTime: Date // 审核时间
  enterPackageId: number // 套餐编号
  enterTime: Date // 入驻时间
  expireTime: Date // 过期时间
}

export interface SimpleShopInfoVO {
  id: number | string // 唯一编号
  type: number // 类型
  name: string // 名称
  logo: string // 徽标
  selfOperated: number // 是否平台自营
  recommend: number // 推荐类型
  scoreLevel: number // 评分星级
  notice: string // 公告
  contactName: string // 联系人姓名
  contactMobile: string // 联系人电话
  status: number // 状态
}

// 店铺创建信息 VO
export interface CreateVO {
  id: number | string // 唯一编号
  type: number // 类型
  name: string // 名称
  logo: string // 徽标
  selfOperated: number // 是否平台自营
  recommend: number // 推荐类型
  introduction: string // 简介
  contactName: string // 联系人姓名
  contactMobile: string // 联系电话
  ownerEidNo: string // 身份证号码
  ownerEidFrontUrl: string // 身份证正面图片地址
  ownerEidBackUrl: string // 身份证反面图片地址
  businessLicenseNo: string // 营业执照号码
  businessLicenseUrl: string // 营业执照图片地址
  businessHours: string // 营业时间
  provinceCode: string // 省份编码
  cityCode: string // 城市编码
  countyCode: string // 区县编码
  detailAddress: string // 详细地址
}

// 店铺基础资料 VO
export interface BasicVO {
  id: number | string // 唯一编号
  type: number // 类型
  categoryId: number // 主营类目编号
  categoryCode: string // 主营类目编码
  categoryName: string // 主营类目名称
  name: string // 名称
  logo: string // 徽标
  selfOperated: number // 是否平台自营
  recommend: number // 推荐类型
  scoreLevel: number // 评分星级
  introduction: string // 简介
  notice: string // 公告
  contactName: string // 联系人姓名
  contactMobile: string // 联系人电话
  ownerEidNo: string // 身份证号码
  ownerEidFrontUrl: string // 身份证正面图片地址
  ownerEidBackUrl: string // 身份证反面图片地址
  businessLicenseNo: string // 营业执照号码
  businessLicenseUrl: string // 营业执照图片地址
  provinceCode: string // 省份编码
  cityCode: string // 城市编码
  countyCode: string // 区县编码
  detailAddress: string // 详细地址
  latitude: number // 纬度
  longitude: number // 经度
}

// 店铺经营地址 VO
export interface AddressVO {
  id: number | string // 唯一编号
  provinceCode: string // 省份编码
  cityCode: string // 城市编码
  countyCode: string // 区县编码
  detailAddress: string // 详细地址
  latitude: number // 纬度
  longitude: number // 经度
}

// 店铺经营状态 VO
export interface StatusVO {
  id: number | string // 唯一编号
  status: number // 审核状态
}

// 店铺服务费率 VO
export interface ServiceFeeVO {
  id: number | string // 唯一编号
  serviceFeePercent: number // 百分比，0-100之间的小数
}

// 店铺可抵扣率 VO
export interface DiscountPercentVO {
  id: number | string // 唯一编号
  discountPercent: number // 百分比，0-100之间的小数
}

// 店铺主营类目 VO
export interface CategoryVO {
  id: number | string // 唯一编号
  categoryId: string // 主营类目编号
}

// 店铺运费规则 VO
export interface TransportVO {
  id: number | string // 唯一编号
  transportType: number // 运费类型
  transportPrice: number // 固定运费
  freeShippingPrice: number // 满多少包邮
}

// 店铺审核信息 VO
export interface AuditVO {
  id: number | string // 唯一编号
  auditStatus: number // 审核状态
  auditNote: string // 审核说明
}

// 店铺开关 VO
export interface EnabledVO {
  id: number | string // 唯一编号
  enabled: boolean | number // 开关
}

// 店铺入驻套餐信息 VO
export interface PackageVO {
  id: number | string // 唯一编号
  enterPackageId: number // 店铺入驻套餐编号
}

// 店铺信息 API
export const ShopInfoApi = {
  // 搜索店铺信息简单列表
  searchShopInfoSimpleList: async (keyword: string) => {
    return await request.get({ url: `/shop/info/search-list?keyword=` + keyword })
  },
  // 选择店铺信息简单列表
  pickShopInfoSimpleList: async (ids: number[] | string[]) => {
    return await request.get({ url: `/shop/info/pick-list?ids=` + ids })
  },
  // 查询店铺信息简单列表
  getShopInfoSimpleList: async () => {
    return await request.get({ url: `/shop/info/simple-list?status=1` })
  },

  // 查询店铺信息分页
  getShopInfoPage: async (params: any) => {
    return await request.get({ url: `/shop/info/page`, params })
  },

  // 查询店铺信息
  getShopInfo: async (id: number | string) => {
    return await request.get({ url: `/shop/info/get?id=` + id })
  },

  // 新增店铺信息
  createShopInfo: async (data: CreateVO) => {
    return await request.post({ url: `/shop/info/create`, data })
  },

  // 修改店铺基础资料
  updateBasic: async (data: BasicVO) => {
    return await request.post({ url: `/shop/info/update-basic`, data })
  },

  // 修改店铺经营地址
  updateAddress: async (data: AddressVO) => {
    return await request.post({ url: `/shop/info/update-address`, data })
  },

  // 修改店铺经营状态
  updateStatus: async (data: StatusVO) => {
    return await request.post({ url: `/shop/info/update-status`, data })
  },

  // 修改店铺服务费率
  updateServiceFee: async (data: ServiceFeeVO) => {
    return await request.post({ url: `/shop/info/update-service-fee`, data })
  },

  // 修改店铺可抵扣率
  updateDiscountPercent: async (data: DiscountPercentVO) => {
    return await request.post({ url: `/shop/info/update-discount-percent`, data })
  },

  // 修改店铺主营类目
  updateCategory: async (data: CategoryVO) => {
    return await request.post({ url: `/shop/info/update-category`, data })
  },

  // 修改店铺运费规则
  updateTransport: async (data: TransportVO) => {
    return await request.post({ url: `/shop/info/update-transport`, data })
  },

  // 修改店铺审核信息
  updateAudit: async (data: AuditVO) => {
    return await request.post({ url: `/shop/info/update-audit`, data })
  },

  // 修改店铺开关
  updateEnabled: async (data: EnabledVO) => {
    return await request.post({ url: `/shop/info/update-enabled`, data })
  },

  // 免费赠送套餐
  updateEnterPackage: async (data: PackageVO) => {
    return await request.post({ url: `/shop/info/update-enter-package`, data })
  },

  // 删除店铺信息
  deleteInfo: async (id: number | string) => {
    return await request.get({ url: `/shop/info/delete?id=` + id })
  },

  // 导出店铺信息 Excel
  exportShopInfo: async (params: any) => {
    return await request.download({ url: `/shop/info/export-excel`, params })
  },

  // 查询店铺信息
  getMyShopInfo: async () => {
    return await request.get({ url: `/shop/info/my`, hideErrorMessage: true })
  },

  // 查询主营类目信息
  getMyCategoryInfo: async () => {
    return await request.get({ url: `/shop/info/my-category`, hideErrorMessage: true })
  }
}
